package org.zfes.snowier.zbss.xzy.biz.solution.dao;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Mapper;
import org.zfes.snowier.common.dao.mybatis.BaseMapper;
import org.zfes.snowier.core.data.ParamMap;
import org.zfes.snowier.core.data.Record;
import org.apache.ibatis.annotations.Param;
import org.zfes.snowier.core.data.SelectVo;
import org.zfes.snowier.zbss.xzy.biz.solution.model.SolutionAlgorithm;
@Mapper
public interface SolutionAlgorithmMapper extends BaseMapper<SolutionAlgorithm>{
	
	Long selectListCount(ParamMap params);
	
	List<Record> selectMapListPage(ParamMap params);
	
	List<SolutionAlgorithm> selectModelListPage(ParamMap params);
	
	
	List<SolutionAlgorithm> selectBySolutionId(@Param("solutionId")Long solutionId,@Param("status")Byte status);
	
	int updateStatus(@Param("id")Long id, @Param("status")Byte status);
	
    List<SelectVo> selectDropList(@Param("status")Byte status);

	int updateStatusBatch(@Param("solutionId")Long solutionId, @Param("algorithmIds")List<Long> algorithmIds,@Param("status")Byte status);

	int deleteBySolutionId(@Param("solutionId") Long solutionId);

	int deleteBatch(@Param("solutionId")Long solutionId, @Param("algorithmIds")List<Long> algorithmIds);

	int updateStatusBySolutionId(@Param("solutionId")Long solutionId,@Param("status")Byte status);
	
	Long selectCountSolutionId(@Param("solutionId")Long solutionId,@Param("status")Byte status);
    
	Map<Long,Integer> selectSolAlgCount();
}
